/*
 * GrafoCompleto.java
 *
 * Criado em 1 de Junho de 2007, 19:54
 */

package dharsudoku.core.grafo;

import dharsudoku.core.vertice.Vertice;

/**
 * Implementa um grafo completo
 * @author Rodrigo
 */
public class GrafoCompleto extends Grafo {

    
    /**
     * Cria um grafo completo
     * @param tamanho Tamanho do grafo completo
     */
    public GrafoCompleto(int tamanho) {
	
	super();
	
	/* Cria vertices no grafo */
	for (int c = 1; c <= tamanho; c++) {
	    this.adicionar(new Vertice(c));
	}
	
	/* Efetua a ligação de todos os vértices */
	for (java.util.Iterator i = this.getVertices().iterator(); i.hasNext(); ) {
	    Vertice A = (Vertice)i.next();
	    
	    for (java.util.Iterator j = this.getVertices().iterator(); j.hasNext(); ) {
		Vertice B = (Vertice)j.next();
		
		if (A != B && !A.isAdjacente(B)) {
		    try {
			A.ligar(B);
		    } catch (Exception ex) {
			continue;
		    }
		}
	    }
	}
    }
    
}
